NetworkBehaviour回调

使用网络管理器时,默认情况下会在客户端连接到服务器时添加玩家。玩家由指定的GameObjects代表(请参阅Player GameObjects上的Unity文档以了解更多信息)。玩家GameObject存在于服务器和客户端实例上。

根据游戏的连接状态接收到不同的回调。这些可以在NetworkManagerHUD中设置。

有三种连接状态可用:

    • 主机:要在主机模式下设置您的游戏,请选择LAN主机(H)。

    • 客户端:要在客户端模式下设置您的游戏,请选择局域网客户端(C),并将服务器IP输入到文本字段或使用API​​功能StartClient()。请注意,您的服务器IP必须位于同一本地网络中 - 或者,如果要连接到同一台计算机,则可以键入“localhost”。

    • 服务器:要在服务器模式下设置您的游戏,请选择仅局域网服务器(S)。

在运行期间,NetworkManagerHUD的控件也可以在NetworkManagerHUD组件的Inspector窗口中找到。单击运行时控件以访问这些。

本节中的回调在NetworkBehaviour类中定义,仅在玩家GameObject上调用。要了解有关设置游戏状态的更多信息,请参阅使用网络管理器:游戏状态管理。

一些回调要求您运行多个游戏实例(例如,两个独立实例,或者一个独立实例,另一个在编辑器中)。这些实例可以位于同一台计算机上或不同的计算机上,只要这些计算机通过本地网络连接即可。这对MatchMaker也同样适用,但通过MatchMaker,您的机器也可以通过互联网连接。

也可以看看:

    • NetworkBehaviour
    • 网络管理器回调

服务器上的玩家回调

为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在服务器实例上的玩家GameObject上调用。

首先启动服务器模式实例,然后启动客户端实例以获取回调:

            • OnStartServer
            • OnRebuildObservers
            •(Start()函数被调用)

玩家在客户端回调

为了获得这些回调,你需要有两个游戏实例,一个运行在服务器模式下,另一个运行在客户端模式下。这些回调仅在客户机实例上的玩家GameObject上调用。

首先启动服务器模式实例,然后启动客户端实例以获取回调:

            • OnStartClient
            • OnStartLocalPlayer
            • OnStartAuthority
            • (Start()函数被调用)

主机上的玩家回调

要获得这些回调,您需要在主机模式下运行一个游戏实例,无论是在编辑器中,还是作为独立版本。这些回调仅在玩家GameObject上调用:

            • OnStartServer
            • OnStartClient
            • OnRebuildObservers
            • OnStartAuthority
            • OnStartLocalPlayer
            • (Start()函数被调用)
            • OnSetLocalVisibility

NetworkBehaviour:OnNetworkDestroy

为了获得OnNetworkDestroy回调,你需要有三个独立的游戏实例,一个在服务器模式下运行,另外两个在客户端模式下运行。

按照以下说明获取OnNetworkDestroy回调:

            1.启动服务器实例
            2.启动客户端实例
            3.启动第二个客户端实例
            4.当两个客户端实例自动连接到服务器实例时,停止一个客户端实例
            5.OnNetworkDestroy然后在其余的Client实例上调用,但不在Server实例上调用

🔚